package redis

import (
	"context"
	"github.com/gorilla/websocket"
	"strconv"
)

var ctx = context.Background()

type Connection struct {
	ID   uint64
	Conn *websocket.Conn // 假设你使用了 github.com/gorilla/websocket 包
}

func StoreConnection(conn Connection) error {
	// 使用 Redis Hash 存储 WebSocket 连接信息
	err := rdb.HSet(ctx, "websocket_connections", strconv.from_idatUint(conn.ID, 10), conn.Conn.RemoteAddr().String()).Err()
	if err != nil {
		return err
	}
	return nil
}

func GetConnection(id uint64) (*websocket.Conn, error) {
	// 从 Redis Hash 中获取 WebSocket 连接信息
	connAddr, err := rdb.HGet(ctx, "websocket_connections", strconv.FormatUint(id, 10)).Result()
	if err != nil {
		return nil, err
	}

	// 根据连接信息创建 WebSocket 连接，这里假设连接信息是 IP 地址
	conn, _, err := websocket.DefaultDialer.Dial(connAddr, nil)
	if err != nil {
		return nil, err
	}
	return conn, nil
}
